package controleur;

import java.util.TimerTask;

import modele.Map;
import modele.Batiment.Batiment;
import modele.Unite.UniteAttaquante;

public class TacheDeplacementEtAttaqueCorps extends TimerTask{
	int nbrMillisecondesAvantRepetition;
	UniteAttaquante uniteAttaquante;
	Controleur controleur;
	Map map;
	Batiment batimentCible;
	
	public TacheDeplacementEtAttaqueCorps(Controleur c, int tempsDAttenteMillisecondes, UniteAttaquante unit, Map m, Batiment batimentCible)
	{
		controleur = c;
		nbrMillisecondesAvantRepetition = tempsDAttenteMillisecondes;
		uniteAttaquante = unit;
		map = m;
		this.batimentCible = batimentCible;
	}

	@Override
	public void run() {
		//if(uniteAttaquante == null){System.out.println("AAAAAAAAH");}
		uniteAttaquante.seDeplacer(map);
		
		//sinon ...
		//TODO
		
		//if((uniteAttaquante.getListeDirection().size() != 0)||)//si ce n'était pas le dernier mouvement on relance un timer
		if(! uniteAttaquante.getPosition().equals(batimentCible.getPosition()))
		{
			
			new MonTimer(new TacheDeplacementEtAttaqueCorps(controleur, nbrMillisecondesAvantRepetition, uniteAttaquante, map, batimentCible), Controleur.tempsDAttenteMillisecondesDeplacement);
		}
		else
		{
			new MonTimer(new TacheAttaqueCorps(controleur, uniteAttaquante.getClockArmeBaissee(), uniteAttaquante, map, batimentCible), Controleur.tempsDAttenteMillisecondesConstruction);
		}
		controleur.provoquerRafraichissement();
	}

}
